A64L

Section: MINTLIB LIBRARY FUNCTIONS (3)
Updated: 3 March 1993
Index Return to Main Contents
 

NAME

a64l, l64a - convert between long integer and base-64 ASCII string  

SYNOPSIS

#include <support.h>

long a64l(const char *s);

char *l64a(long l);
 

DESCRIPTION

These functions are used to maintain numbers stored in base-64 ASCII characters. This is a notation by which long integers can be represented by up to six characters; each character represents a "digit" in a radix-64 notation. The characters used to represent "digits" are . for 0, / for 1, 0 through 9 for 2-11, A through Z for 12-37, and a through z for 38-63. a64l takes a pointer to a null-terminated base-64 representation and returns a corresponding long value. If the string pointed to by s contains more than six characters, a64l will use the first six. a64l scans the character string from left to right, decoding each character as a 6 bit radix-64 number. If the string contains illegal characters, -1 is returned and errno is set to EBADARG. l64a takes a long argument and returns a pointer to the corresponding base-64 representation. If the argument is 0, a64l returns a pointer to a null string. If the argument is smaller than zero, a pointer to a null string is returned and errno is set to EBADARG.  

CAVEATS

The value returned by l64a is a pointer into a static buffer, the contents of which are overwritten by each call. The value returned by a64l may be incorrect if the value is too large; for that reason, only strings that resulted from a call to l64a should be used to call a64l. Maybe these calls should use unsigned long values, but longs are used here to retain compatibility with UN*X System V.
 

Index

NAME
SYNOPSIS
DESCRIPTION
CAVEATS

This document was created by man2html, using the manual pages.
Time: 11:14:52 GMT, June 22, 2025